package com.net.framework.help.utils;

import android.content.Context;
import android.os.Environment;
import android.telephony.TelephonyManager;

import java.io.File;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Author：xiaobin.zhang
 * Email：154722566@qq.com
 * Date：2018-01-22 11:00
 * Desc：<--输入日志到手机本地文件夹-->
 */
public class OutLogUtil {
    // 错误日志存储目录
    public static String SAVE_LOG_PATH;
    private DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    public void outLog(Context context, String str) {
        SAVE_LOG_PATH = Environment.getExternalStorageDirectory().getPath() + "/" + context.getPackageName() + "/DEBUGLOG/";
        TelephonyManager telephonyManager = getInfo(context);
        // 抛异常的时间
        String time = formatter.format(new Date());
        StringBuffer sb = new StringBuffer();
        sb.append("-----记录时间：" + time + "\n");
        sb.append(str + "\n");
        sb.append("------end--------" + "\n");
        sb.append("\n");
        sb.append("\n");
        try {
            // 日志文件命名（手机唯一设备号+异常抛出时间）
            String fileName = "Debug_" + PackageInfoUtil.getPackageInfo(context).versionCode + "_" + telephonyManager.getDeviceId() + ".log";
            // 如果当前Android的外部存储器可读可写
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                // 创建日志文件存储目录
                File dir = new File(SAVE_LOG_PATH);
                if (!dir.exists()) {
                    dir.mkdirs();
                }
                // 用文件流输出要存储的日志数据
                FileOutputStream fos = new FileOutputStream(SAVE_LOG_PATH + fileName, true);
                fos.write(sb.toString().getBytes());
                fos.close();
            }
        } catch (Exception e) {
        }
    }

    /***
     * 获取手机基本信息
     */
    private TelephonyManager getInfo(Context context) {
        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);
        return telephonyManager;
    }
}
